﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MvcApplication1.Models;

namespace Ligas.Tests.Fakes
{
    class FakeRepositorioUsuario : FakeRepositorioBase,  IRepositorioUsuario1
    {
        private List<Usuario> usuarios;

        public FakeRepositorioUsuario(List<Usuario> usuarios)
        {
            this.usuarios = usuarios;
        }

        public IQueryable<Usuario> TodosLosUsuarios()
        {
            return usuarios.AsQueryable();
        }

        public void AgregarUsuario(Usuario u)
        {
            usuarios.Add(u);
        }

        public void EliminarUsuario(Usuario u)
        {
            usuarios.Remove(u);
        }

        public List<Usuario> EncontrarUsuariosTipo(int tipoDeUsuario)
        {
            List<Usuario> retorno = new List<Usuario>();
            foreach (Usuario u in this.usuarios)
            {
                if (u.IDTipoDeUsario == tipoDeUsuario)
                    retorno.Add(u);
            }
            return retorno;
        }

        public Usuario getUsuario(int indice)
        {
            return usuarios.SingleOrDefault(d => d.IDUsuario == indice);
        }

        public override void Save()
        {
            base.Save();
        }



        public Usuario EncontrarUsuarioNombre(string userName)
        {
            foreach (Usuario u in usuarios)
                if (u.Usuario1.Equals(userName))
                    return u;
            return null;
        }
    }
}
